Next: Motion and Syntax, Previous: Syntax Table Functions, Up: Syntax Tables [Contents][Index]
When the syntax table is not flexible enough to specify the
syntax of a language, you can override the syntax table for
specific character occurrences in the buffer, by applying a
syntax-table text property. See Text Properties, for
how to apply text properties.
The valid values of syntax-table text property
are:
If the property value is a syntax table, that table is used instead of the current buffer’s syntax table to determine the syntax for the underlying text character.
(syntax-code .
matching-char)A cons cell of this format is a raw syntax descriptor (see Syntax Table Internals), which directly specifies a syntax class for the underlying text character.
nilIf the property is nil, the character’s
syntax is determined from the current syntax table in the
usual way.
If this is non-nil, the syntax scanning
functions, like forward-sexp, pay attention to
syntax text properties. Otherwise they use only the current
syntax table.
This variable, if non-nil, should store a
function for applying syntax-table properties to
a specified stretch of text. It is intended to be used by
major modes to install a function which applies
syntax-table properties in some mode-appropriate
way.
The function is called by syntax-ppss (see
Position
Parse), and by Font Lock mode during syntactic
fontification (see Syntactic Font
Lock). It is called with two arguments, start
and end, which are the starting and ending
positions of the text on which it should act. It is allowed
to call syntax-ppss on any position before
end. However, it should not call
syntax-ppss-flush-cache; so, it is not allowed
to call syntax-ppss on some position and later
modify the buffer at an earlier position.
This abnormal hook is run by the syntax parsing code prior
to calling syntax-propertize-function. Its role
is to help locate safe starting and ending buffer positions
for passing to syntax-propertize-function. For
example, a major mode can add a function to this hook to
identify multi-line syntactic constructs, and ensure that the
boundaries do not fall in the middle of one.
Each function in this hook should accept two arguments,
start and end. It should return either
a cons cell of two adjusted buffer positions,
(new-start . new-end), or
nil if no adjustment is necessary. The hook
functions are run in turn, repeatedly, until they all return
nil.
Next: Motion and Syntax, Previous: Syntax Table Functions, Up: Syntax Tables [Contents][Index]